<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Repetier-Firmware: HAL Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="repetier-logo-trans128.png"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Repetier-Firmware
   &#160;<span id="projectnumber">0.91</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('class_h_a_l.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">HAL Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="HAL" -->
<p><code>#include &lt;<a class="el" href="_h_a_l_8h_source.html">HAL.h</a>&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a4bec08ef577bbee11cd0b642d72eacf8">HAL</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a4738f0d9cf2db27662262b839a09e132">~HAL</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#aaf7e5bdf9c09eb34ed8131e4ecaeef4e">hwSetup</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a082b7fadae763dec05f510418ccdb61c">integerSqrt</a> (long a)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a9984f0dc6a7bd5d81ee52b850cde8064">Div4U2U</a> (unsigned long a, unsigned int b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Optimized division.  <a href="#a9984f0dc6a7bd5d81ee52b850cde8064"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#af9310c6e80a99ddc7472c50488c0a5de">U16SquaredToU32</a> (unsigned int val)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a7a747c87a3bcad76f8e2d9b98ac50e5a">ComputeV</a> (long timer, long accel)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#aed81729e739297a283a88c4313c4d247">mulu16xu16to32</a> (unsigned int a, unsigned int b)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a5865166dfdd8a9ff9bd57f7d0c970856">mulu6xu16shift16</a> (unsigned int a, unsigned int b)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a96674ad510b66c51e3b2ba191e403f4d">digitalWrite</a> (uint8_t pin, uint8_t value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a3f9e2d2c30df9ba03affa325d5a0eb53">digitalRead</a> (uint8_t pin)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a5643915ee545161f9710d4bb015c0969">pinMode</a> (uint8_t pin, uint8_t mode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a7e111cca1359d85efb144985c3a83dbd">CPUDivU2</a> (unsigned int divisor)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">approximates division of F_CPU/divisor  <a href="#a7e111cca1359d85efb144985c3a83dbd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a9c21525c92e4753a86201165ba0f9550">delayMicroseconds</a> (unsigned int delayUs)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#aa1769a083cbec3c5314c4d6da22f6d8b">delayMilliseconds</a> (unsigned int delayMs)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a7b0c899559312f1df735ac44eb5dd33d">tone</a> (uint8_t pin, int duration)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a2d1a46489e979b07587535e1723e0009">noTone</a> (uint8_t pin)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a8f4e462098ac1eef804e8e45addff4e6">eprSetByte</a> (unsigned int pos, uint8_t value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a5972e15871bb7d4ea4636d6c167759b2">eprSetInt16</a> (unsigned int pos, int16_t value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a17fc7028929dd07596c3f3547292ad88">eprSetInt32</a> (unsigned int pos, int32_t value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a2e5b4ff462e9319ce841732d306c7bda">eprSetFloat</a> (unsigned int pos, float value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#abf59c48dfd636724c15100ef1866899d">eprGetByte</a> (unsigned int pos)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#ab06e7809bbb8ba7845390d77646ce3c2">eprGetInt16</a> (unsigned int pos)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#afbffb37148267a3d4caf95ff616e8657">eprGetInt32</a> (unsigned int pos)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a9d4b0a749807ef9f8f9816f3e60c4d94">eprGetFloat</a> (unsigned int pos)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#af342bda39004b757cd9656dd9deb90df">allowInterrupts</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a9d22df0fcf68ff5b98b830b2292515e7">forbidInterrupts</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a65d1c288f4c20829327fa833a237b88e">timeInMilliseconds</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#aa58a2c274b4886400875720562c4ee5d">readFlashByte</a> (PGM_P ptr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a0046551b22d5f512dde823eed4044a21">serialSetBaudrate</a> (long baud)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#ab2c1a65532132814998831a3d9efe622">serialByteAvailable</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#af70d2dbfc1a9b6a941abbe369b6b6f3d">serialReadByte</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#af1aeb3ec8ae32252dc8ed3d90197fdef">serialWriteByte</a> (char b)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a2d8733842c2e2df337be87b466f16de1">serialFlush</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a9745f35ca229658cc342286ea75c0b77">setupTimer</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a4b4b830e978ba8c24df1ea68071e481e">showStartReason</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a45aca2c95be04bccafb958e08a3bcf1a">getFreeRam</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#aa602b512765a5e33965856fc4e8d7dff">resetHardware</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#afbbde126ab31dc77a85657f4a6b3dcdd">spiBegin</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#ab0d9589c111450f0729af0020b7d41b3">spiInit</a> (uint8_t spiRate)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a9cb19ad0ebcea3a90cccea4f9cb34517">spiReceive</a> (uint8_t send=0xff)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#ad8bdf682128340583807cf04541a3e07">spiReadBlock</a> (uint8_t *buf, size_t nbyte)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a19e8440b98633609d5fca69e6201ec99">spiSend</a> (uint8_t b)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a63037c75b9adfbc5a681f30e39a65bf5">spiSend</a> (const uint8_t *buf, size_t n)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#adce538c95a5f53cd6a95f28f2c6d18ec">__attribute__</a> ((always_inline)) void spiSendBlock(uint8_t token</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a12b0aae6b2d3f48ac6a011b27fb2f653">i2cStart</a> (unsigned char address)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a80acad3cb511fbc8b546c64eccb40c20">i2cStartWait</a> (unsigned char address)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a46f365de216a017131a0fdc53067b741">i2cStop</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a2b905c212d29a99cd82e7f16d8572ed0">i2cWrite</a> (unsigned char data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#ab7b23a8495801a3ec28f2b2e3e483df1">i2cReadAck</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#aee78ce54d9b9923624e960f77669852e">i2cReadNak</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#ab15f188de861307c769276cc16d1d740">startWatchdog</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#ae7ea055851e887aaa3037c3dc6e5377d">stopWatchdog</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a0b8960a0664509defcc1e2a6901c5020">pingWatchdog</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a901a30c03317102d602c281c675f9173">maxExtruderTimerFrequency</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_h_a_l.html#a84836ee79baf56573a74cb69663faabf">analogStart</a> ()</td></tr>
</table>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a4bec08ef577bbee11cd0b642d72eacf8"></a><!-- doxytag: member="HAL::HAL" ref="a4bec08ef577bbee11cd0b642d72eacf8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_h_a_l.html">HAL</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4738f0d9cf2db27662262b839a09e132"></a><!-- doxytag: member="HAL::~HAL" ref="a4738f0d9cf2db27662262b839a09e132" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">~<a class="el" href="class_h_a_l.html">HAL</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="adce538c95a5f53cd6a95f28f2c6d18ec"></a><!-- doxytag: member="HAL::__attribute__" ref="adce538c95a5f53cd6a95f28f2c6d18ec" args="((always_inline)) void spiSendBlock(uint8_t token" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="class_h_a_l.html#adce538c95a5f53cd6a95f28f2c6d18ec">__attribute__</a> </td>
          <td>(</td>
          <td class="paramtype">(always_inline)&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af342bda39004b757cd9656dd9deb90df"></a><!-- doxytag: member="HAL::allowInterrupts" ref="af342bda39004b757cd9656dd9deb90df" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#af342bda39004b757cd9656dd9deb90df">allowInterrupts</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a84836ee79baf56573a74cb69663faabf"></a><!-- doxytag: member="HAL::analogStart" ref="a84836ee79baf56573a74cb69663faabf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_h_a_l.html#a84836ee79baf56573a74cb69663faabf">analogStart</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7a747c87a3bcad76f8e2d9b98ac50e5a"></a><!-- doxytag: member="HAL::ComputeV" ref="a7a747c87a3bcad76f8e2d9b98ac50e5a" args="(long timer, long accel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned int <a class="el" href="class_h_a_l.html#a7a747c87a3bcad76f8e2d9b98ac50e5a">ComputeV</a> </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>timer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>accel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7e111cca1359d85efb144985c3a83dbd"></a><!-- doxytag: member="HAL::CPUDivU2" ref="a7e111cca1359d85efb144985c3a83dbd" args="(unsigned int divisor)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="class_h_a_l.html#a7e111cca1359d85efb144985c3a83dbd">CPUDivU2</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>divisor</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>approximates division of F_CPU/divisor </p>
<p>In the stepper interrupt a division is needed, which is a slow operation. The result is used for timer calculation where small errors are ok. This function uses lookup tables to find a fast approximation of the result. </p>

</div>
</div>
<a class="anchor" id="a9c21525c92e4753a86201165ba0f9550"></a><!-- doxytag: member="HAL::delayMicroseconds" ref="a9c21525c92e4753a86201165ba0f9550" args="(unsigned int delayUs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a9c21525c92e4753a86201165ba0f9550">delayMicroseconds</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>delayUs</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa1769a083cbec3c5314c4d6da22f6d8b"></a><!-- doxytag: member="HAL::delayMilliseconds" ref="aa1769a083cbec3c5314c4d6da22f6d8b" args="(unsigned int delayMs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#aa1769a083cbec3c5314c4d6da22f6d8b">delayMilliseconds</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>delayMs</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a3f9e2d2c30df9ba03affa325d5a0eb53"></a><!-- doxytag: member="HAL::digitalRead" ref="a3f9e2d2c30df9ba03affa325d5a0eb53" args="(uint8_t pin)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint8_t <a class="el" href="class_h_a_l.html#a3f9e2d2c30df9ba03affa325d5a0eb53">digitalRead</a> </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>pin</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a96674ad510b66c51e3b2ba191e403f4d"></a><!-- doxytag: member="HAL::digitalWrite" ref="a96674ad510b66c51e3b2ba191e403f4d" args="(uint8_t pin, uint8_t value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a96674ad510b66c51e3b2ba191e403f4d">digitalWrite</a> </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9984f0dc6a7bd5d81ee52b850cde8064"></a><!-- doxytag: member="HAL::Div4U2U" ref="a9984f0dc6a7bd5d81ee52b850cde8064" args="(unsigned long a, unsigned int b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static long <a class="el" href="class_h_a_l.html#a9984f0dc6a7bd5d81ee52b850cde8064">Div4U2U</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Optimized division. </p>
<p>Normally the C compiler will compute a long/long division, which takes ~670 Ticks. This version is optimized for a 16 bit dividend and recognises the special cases of a 24 bit and 16 bit dividend, which offen, but not always occur in updating the interval. </p>

</div>
</div>
<a class="anchor" id="abf59c48dfd636724c15100ef1866899d"></a><!-- doxytag: member="HAL::eprGetByte" ref="abf59c48dfd636724c15100ef1866899d" args="(unsigned int pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint8_t <a class="el" href="class_h_a_l.html#abf59c48dfd636724c15100ef1866899d">eprGetByte</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pos</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9d4b0a749807ef9f8f9816f3e60c4d94"></a><!-- doxytag: member="HAL::eprGetFloat" ref="a9d4b0a749807ef9f8f9816f3e60c4d94" args="(unsigned int pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static float <a class="el" href="class_h_a_l.html#a9d4b0a749807ef9f8f9816f3e60c4d94">eprGetFloat</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pos</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab06e7809bbb8ba7845390d77646ce3c2"></a><!-- doxytag: member="HAL::eprGetInt16" ref="ab06e7809bbb8ba7845390d77646ce3c2" args="(unsigned int pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int16_t <a class="el" href="class_h_a_l.html#ab06e7809bbb8ba7845390d77646ce3c2">eprGetInt16</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pos</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="afbffb37148267a3d4caf95ff616e8657"></a><!-- doxytag: member="HAL::eprGetInt32" ref="afbffb37148267a3d4caf95ff616e8657" args="(unsigned int pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int32_t <a class="el" href="class_h_a_l.html#afbffb37148267a3d4caf95ff616e8657">eprGetInt32</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pos</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a8f4e462098ac1eef804e8e45addff4e6"></a><!-- doxytag: member="HAL::eprSetByte" ref="a8f4e462098ac1eef804e8e45addff4e6" args="(unsigned int pos, uint8_t value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a8f4e462098ac1eef804e8e45addff4e6">eprSetByte</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2e5b4ff462e9319ce841732d306c7bda"></a><!-- doxytag: member="HAL::eprSetFloat" ref="a2e5b4ff462e9319ce841732d306c7bda" args="(unsigned int pos, float value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a2e5b4ff462e9319ce841732d306c7bda">eprSetFloat</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5972e15871bb7d4ea4636d6c167759b2"></a><!-- doxytag: member="HAL::eprSetInt16" ref="a5972e15871bb7d4ea4636d6c167759b2" args="(unsigned int pos, int16_t value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a5972e15871bb7d4ea4636d6c167759b2">eprSetInt16</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int16_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a17fc7028929dd07596c3f3547292ad88"></a><!-- doxytag: member="HAL::eprSetInt32" ref="a17fc7028929dd07596c3f3547292ad88" args="(unsigned int pos, int32_t value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a17fc7028929dd07596c3f3547292ad88">eprSetInt32</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9d22df0fcf68ff5b98b830b2292515e7"></a><!-- doxytag: member="HAL::forbidInterrupts" ref="a9d22df0fcf68ff5b98b830b2292515e7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a9d22df0fcf68ff5b98b830b2292515e7">forbidInterrupts</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a45aca2c95be04bccafb958e08a3bcf1a"></a><!-- doxytag: member="HAL::getFreeRam" ref="a45aca2c95be04bccafb958e08a3bcf1a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="class_h_a_l.html#a45aca2c95be04bccafb958e08a3bcf1a">getFreeRam</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aaf7e5bdf9c09eb34ed8131e4ecaeef4e"></a><!-- doxytag: member="HAL::hwSetup" ref="aaf7e5bdf9c09eb34ed8131e4ecaeef4e" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#aaf7e5bdf9c09eb34ed8131e4ecaeef4e">hwSetup</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab7b23a8495801a3ec28f2b2e3e483df1"></a><!-- doxytag: member="HAL::i2cReadAck" ref="ab7b23a8495801a3ec28f2b2e3e483df1" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char <a class="el" href="class_h_a_l.html#ab7b23a8495801a3ec28f2b2e3e483df1">i2cReadAck</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aee78ce54d9b9923624e960f77669852e"></a><!-- doxytag: member="HAL::i2cReadNak" ref="aee78ce54d9b9923624e960f77669852e" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char <a class="el" href="class_h_a_l.html#aee78ce54d9b9923624e960f77669852e">i2cReadNak</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a12b0aae6b2d3f48ac6a011b27fb2f653"></a><!-- doxytag: member="HAL::i2cStart" ref="a12b0aae6b2d3f48ac6a011b27fb2f653" args="(unsigned char address)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char <a class="el" href="class_h_a_l.html#a12b0aae6b2d3f48ac6a011b27fb2f653">i2cStart</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>address</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a80acad3cb511fbc8b546c64eccb40c20"></a><!-- doxytag: member="HAL::i2cStartWait" ref="a80acad3cb511fbc8b546c64eccb40c20" args="(unsigned char address)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_h_a_l.html#a80acad3cb511fbc8b546c64eccb40c20">i2cStartWait</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>address</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a46f365de216a017131a0fdc53067b741"></a><!-- doxytag: member="HAL::i2cStop" ref="a46f365de216a017131a0fdc53067b741" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_h_a_l.html#a46f365de216a017131a0fdc53067b741">i2cStop</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2b905c212d29a99cd82e7f16d8572ed0"></a><!-- doxytag: member="HAL::i2cWrite" ref="a2b905c212d29a99cd82e7f16d8572ed0" args="(unsigned char data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char <a class="el" href="class_h_a_l.html#a2b905c212d29a99cd82e7f16d8572ed0">i2cWrite</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a082b7fadae763dec05f510418ccdb61c"></a><!-- doxytag: member="HAL::integerSqrt" ref="a082b7fadae763dec05f510418ccdb61c" args="(long a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint16_t <a class="el" href="class_h_a_l.html#a082b7fadae763dec05f510418ccdb61c">integerSqrt</a> </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>a</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a901a30c03317102d602c281c675f9173"></a><!-- doxytag: member="HAL::maxExtruderTimerFrequency" ref="a901a30c03317102d602c281c675f9173" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static float <a class="el" href="class_h_a_l.html#a901a30c03317102d602c281c675f9173">maxExtruderTimerFrequency</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aed81729e739297a283a88c4313c4d247"></a><!-- doxytag: member="HAL::mulu16xu16to32" ref="aed81729e739297a283a88c4313c4d247" args="(unsigned int a, unsigned int b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned long <a class="el" href="class_h_a_l.html#aed81729e739297a283a88c4313c4d247">mulu16xu16to32</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5865166dfdd8a9ff9bd57f7d0c970856"></a><!-- doxytag: member="HAL::mulu6xu16shift16" ref="a5865166dfdd8a9ff9bd57f7d0c970856" args="(unsigned int a, unsigned int b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned int <a class="el" href="class_h_a_l.html#a5865166dfdd8a9ff9bd57f7d0c970856">mulu6xu16shift16</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2d1a46489e979b07587535e1723e0009"></a><!-- doxytag: member="HAL::noTone" ref="a2d1a46489e979b07587535e1723e0009" args="(uint8_t pin)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a2d1a46489e979b07587535e1723e0009">noTone</a> </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>pin</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0b8960a0664509defcc1e2a6901c5020"></a><!-- doxytag: member="HAL::pingWatchdog" ref="a0b8960a0664509defcc1e2a6901c5020" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a0b8960a0664509defcc1e2a6901c5020">pingWatchdog</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5643915ee545161f9710d4bb015c0969"></a><!-- doxytag: member="HAL::pinMode" ref="a5643915ee545161f9710d4bb015c0969" args="(uint8_t pin, uint8_t mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a5643915ee545161f9710d4bb015c0969">pinMode</a> </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa58a2c274b4886400875720562c4ee5d"></a><!-- doxytag: member="HAL::readFlashByte" ref="aa58a2c274b4886400875720562c4ee5d" args="(PGM_P ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char <a class="el" href="class_h_a_l.html#aa58a2c274b4886400875720562c4ee5d">readFlashByte</a> </td>
          <td>(</td>
          <td class="paramtype">PGM_P&#160;</td>
          <td class="paramname"><em>ptr</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa602b512765a5e33965856fc4e8d7dff"></a><!-- doxytag: member="HAL::resetHardware" ref="aa602b512765a5e33965856fc4e8d7dff" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_h_a_l.html#aa602b512765a5e33965856fc4e8d7dff">resetHardware</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab2c1a65532132814998831a3d9efe622"></a><!-- doxytag: member="HAL::serialByteAvailable" ref="ab2c1a65532132814998831a3d9efe622" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool <a class="el" href="class_h_a_l.html#ab2c1a65532132814998831a3d9efe622">serialByteAvailable</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a2d8733842c2e2df337be87b466f16de1"></a><!-- doxytag: member="HAL::serialFlush" ref="a2d8733842c2e2df337be87b466f16de1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a2d8733842c2e2df337be87b466f16de1">serialFlush</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af70d2dbfc1a9b6a941abbe369b6b6f3d"></a><!-- doxytag: member="HAL::serialReadByte" ref="af70d2dbfc1a9b6a941abbe369b6b6f3d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint8_t <a class="el" href="class_h_a_l.html#af70d2dbfc1a9b6a941abbe369b6b6f3d">serialReadByte</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0046551b22d5f512dde823eed4044a21"></a><!-- doxytag: member="HAL::serialSetBaudrate" ref="a0046551b22d5f512dde823eed4044a21" args="(long baud)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a0046551b22d5f512dde823eed4044a21">serialSetBaudrate</a> </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>baud</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af1aeb3ec8ae32252dc8ed3d90197fdef"></a><!-- doxytag: member="HAL::serialWriteByte" ref="af1aeb3ec8ae32252dc8ed3d90197fdef" args="(char b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#af1aeb3ec8ae32252dc8ed3d90197fdef">serialWriteByte</a> </td>
          <td>(</td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9745f35ca229658cc342286ea75c0b77"></a><!-- doxytag: member="HAL::setupTimer" ref="a9745f35ca229658cc342286ea75c0b77" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_h_a_l.html#a9745f35ca229658cc342286ea75c0b77">setupTimer</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4b4b830e978ba8c24df1ea68071e481e"></a><!-- doxytag: member="HAL::showStartReason" ref="a4b4b830e978ba8c24df1ea68071e481e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_h_a_l.html#a4b4b830e978ba8c24df1ea68071e481e">showStartReason</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="afbbde126ab31dc77a85657f4a6b3dcdd"></a><!-- doxytag: member="HAL::spiBegin" ref="afbbde126ab31dc77a85657f4a6b3dcdd" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#afbbde126ab31dc77a85657f4a6b3dcdd">spiBegin</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab0d9589c111450f0729af0020b7d41b3"></a><!-- doxytag: member="HAL::spiInit" ref="ab0d9589c111450f0729af0020b7d41b3" args="(uint8_t spiRate)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#ab0d9589c111450f0729af0020b7d41b3">spiInit</a> </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>spiRate</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad8bdf682128340583807cf04541a3e07"></a><!-- doxytag: member="HAL::spiReadBlock" ref="ad8bdf682128340583807cf04541a3e07" args="(uint8_t *buf, size_t nbyte)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#ad8bdf682128340583807cf04541a3e07">spiReadBlock</a> </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>nbyte</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9cb19ad0ebcea3a90cccea4f9cb34517"></a><!-- doxytag: member="HAL::spiReceive" ref="a9cb19ad0ebcea3a90cccea4f9cb34517" args="(uint8_t send=0xff)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint8_t <a class="el" href="class_h_a_l.html#a9cb19ad0ebcea3a90cccea4f9cb34517">spiReceive</a> </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>send</em> = <code>0xff</code></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a19e8440b98633609d5fca69e6201ec99"></a><!-- doxytag: member="HAL::spiSend" ref="a19e8440b98633609d5fca69e6201ec99" args="(uint8_t b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a19e8440b98633609d5fca69e6201ec99">spiSend</a> </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a63037c75b9adfbc5a681f30e39a65bf5"></a><!-- doxytag: member="HAL::spiSend" ref="a63037c75b9adfbc5a681f30e39a65bf5" args="(const uint8_t *buf, size_t n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a19e8440b98633609d5fca69e6201ec99">spiSend</a> </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab15f188de861307c769276cc16d1d740"></a><!-- doxytag: member="HAL::startWatchdog" ref="ab15f188de861307c769276cc16d1d740" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#ab15f188de861307c769276cc16d1d740">startWatchdog</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae7ea055851e887aaa3037c3dc6e5377d"></a><!-- doxytag: member="HAL::stopWatchdog" ref="ae7ea055851e887aaa3037c3dc6e5377d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#ae7ea055851e887aaa3037c3dc6e5377d">stopWatchdog</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a65d1c288f4c20829327fa833a237b88e"></a><!-- doxytag: member="HAL::timeInMilliseconds" ref="a65d1c288f4c20829327fa833a237b88e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned long <a class="el" href="class_h_a_l.html#a65d1c288f4c20829327fa833a237b88e">timeInMilliseconds</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7b0c899559312f1df735ac44eb5dd33d"></a><!-- doxytag: member="HAL::tone" ref="a7b0c899559312f1df735ac44eb5dd33d" args="(uint8_t pin, int duration)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="class_h_a_l.html#a7b0c899559312f1df735ac44eb5dd33d">tone</a> </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>pin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>duration</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af9310c6e80a99ddc7472c50488c0a5de"></a><!-- doxytag: member="HAL::U16SquaredToU32" ref="af9310c6e80a99ddc7472c50488c0a5de" args="(unsigned int val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned long <a class="el" href="class_h_a_l.html#af9310c6e80a99ddc7472c50488c0a5de">U16SquaredToU32</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/ArduinoAVR/Repetier/<a class="el" href="_h_a_l_8h_source.html">HAL.h</a></li>
<li>src/ArduinoAVR/Repetier/<a class="el" href="_h_a_l_8cpp.html">HAL.cpp</a></li>
</ul>
</div><!-- contents -->
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="class_h_a_l.html">HAL</a>      </li>

    <li class="footer">Generated on Mon Dec 30 2013 18:53:03 for Repetier-Firmware by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
   </ul>
 </div>


</body>
</html>
